A processor, such as a central processing unit (CPU), is generally a piece of hardware that controls various elements of a computing device. A processor generally cycles through four stages: instruction fetch, decode, execute, and write-back. That is, the processor initially retrieves an instruction, interprets the instruction, performs the instruction as interpreted, and then performs a transaction, e.g., providing output to or retrieving data from memory or a device. In general, a transaction performed by a processor is any process or bus operation performed by the processor and typically constitutes a set of control and data signals produced by the processor and applied to the bus. A chip including control logic may act as an interface between two buses of a system, e.g., a processor bus and a memory bus. In general, the control logic receives an input vector from a source bus and produces an output vector on a destination bus.
In certain cases, actions of the control logic interfacing between the two system buses need to be modified with respect to their state or timing. For example, there may have been an upgrade to a processor, a bus architecture, a memory interface, and the like. As another example, the control logic may produce incorrect output, requiring a bug fix. Certain components may require input that differs from that produced by a component connected to the source bus, e.g., a processor, a memory, an I/O device, or other component. In some cases, modifying input vectors may improve performance.
Originally, even to make a slight change to signals produced by the control logic for a distinct input vector, such as a transaction (e.g., a memory read), a chip storing the control logic would need to be discarded, redesigned, and remanufactured. However, some conventional computing systems now utilize programmable control logic. The programmable control logic receives an input vector of signals, which may include a transaction from the processor, and selects one of a plurality of a large bank of memory to produce an output vector of signals. For this reason, programmable control logic includes a large set of memories, such as registers, register arrays, or random access memories (RAMs), with which to store specific output signals for each of the different possible combinations of input signals from the processor. These programmable memories are present on a die of the chip that includes the control logic and consume valuable space on the die, making the chip considerably more expensive in terms of cost and die space and also reduce the processing efficiency (i.e., speed) of the control logic.